#ifndef __KEY_H__
#define __KEY_H__

#include "gpio.h"
//#include "main.h"

// 按键ID枚举（替代宏定义，增强类型安全）
typedef enum {
    KEY_1 = 0,
    KEY_2,
    KEY_COUNT  // 按键总数（自动计算）
} Key_Id;		//需要多少自己添加

// 按键状态标志枚举（位掩码）
typedef enum {
    KEY_HOLD    = 0x01,  // 按键保持按下
    KEY_DOWN    = 0x02,  // 按键按下边沿
    KEY_UP      = 0x04,  // 按键释放边沿
    KEY_SINGLE  = 0x08,  // 单击
    KEY_DOUBLE  = 0x10,  // 双击
    KEY_LONG    = 0x20,  // 长按
    KEY_REPEAT  = 0x40   // 长按重复触发
} Key_Flag;

// 按键时间参数
#define KEY_TIME_DOUBLE   200   // 双击检测时间窗口(ms)
#define KEY_TIME_LONG     1600  // 长按判定时间(ms)
#define KEY_TIME_REPEAT   100   // 长按重复触发间隔(ms)
#define KEY_SCAN_INTERVAL 20    // 按键扫描周期(ms)

//void Key_Init(void);		//加了初始化记得取消注释
uint8_t Key_Check(Key_Id id, Key_Flag flag);
void Key_Tick(void);

#endif
